package com.yonyou.cyxdms.basedata.service.dto.vehiclemodel;

import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.yonyou.cyx.function.utils.jsonserializer.localdatetime.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;

/**
 * 车型 - 新增/编辑DTO
 *
 * @author Tansj
 * @since 18:30 2019-11-15
 */
@ApiModel(value = "ModelModifyDTO", description = "车型 - 新增/编辑DTO")
public class ModelModifyDTO {

    @ApiModelProperty(value = "车型主键ID-编辑时必传，新增传递null")
    private Long modelId;

    @ApiModelProperty(value = "品牌ID-品牌名称下拉框传递品牌ID")
    @NotNull(message = "品牌名称不能为空")
    private Long brandId;

    @ApiModelProperty(value = "车系ID-车系名称下拉框传递车系ID")
    @NotNull(message = "车系名称不能为空")
    private Long seriesId;

    @ApiModelProperty(value = "车型代码")
    @NotNull(message = "车型代码不能为空")
    private String modelCode;

    @ApiModelProperty(value = "车型名称")
    @NotNull(message = "车型名称不能为空")
    private String modelName;

    @ApiModelProperty(value = "数据来源")
    private Integer dataSources;

    @ApiModelProperty(value = "是否启用")
    private Integer isValid;

    @ApiModelProperty(value = "版本号-编辑时必传")
    private Integer recordVersion;

    @ApiModelProperty(value = "启用时间")
    @JsonDeserialize(using = JsonLocalDateTimeQueryBeginDeserializer.class)
    @JsonSerialize(using = JsonLocalDateTimeQueryBeginSerializer.class)
    private LocalDateTime startDate;

    @ApiModelProperty(value = "启用标识")
    private Integer startType;

    @ApiModelProperty(value = "共平台车标识")
    private Integer commonPlatformFlag;

    //维修车型分组代码代码
    private String modelLabourCode;

    //索赔车型组名称
    private String modelGroupName;

    //索赔车型组代码
    private String modelGroupCode;

    public Long getModelId() {
        return modelId;
    }

    public void setModelId(Long modelId) {
        this.modelId = modelId;
    }

    public Long getBrandId() {
        return brandId;
    }

    public void setBrandId(Long brandId) {
        this.brandId = brandId;
    }

    public Long getSeriesId() {
        return seriesId;
    }

    public void setSeriesId(Long seriesId) {
        this.seriesId = seriesId;
    }

    public String getModelCode() {
        return modelCode;
    }

    public void setModelCode(String modelCode) {
        this.modelCode = modelCode;
    }

    public String getModelName() {
        return modelName;
    }

    public void setModelName(String modelName) {
        this.modelName = modelName;
    }

    public Integer getDataSources() {
        return dataSources;
    }

    public void setDataSources(Integer dataSources) {
        this.dataSources = dataSources;
    }

    public Integer getIsValid() {
        return isValid;
    }

    public void setIsValid(Integer isValid) {
        this.isValid = isValid;
    }

    public String getModelLabourCode() {
        return modelLabourCode;
    }

    public void setModelLabourCode(String modelLabourCode) {
        this.modelLabourCode = modelLabourCode;
    }

    public String getModelGroupName() {
        return modelGroupName;
    }

    public void setModelGroupName(String modelGroupName) {
        this.modelGroupName = modelGroupName;
    }

    public String getModelGroupCode() {
        return modelGroupCode;
    }

    public void setModelGroupCode(String modelGroupCode) {
        this.modelGroupCode = modelGroupCode;
    }

    public Integer getRecordVersion() {
        return recordVersion;
    }

    public void setRecordVersion(Integer recordVersion) {
        this.recordVersion = recordVersion;
    }

    public LocalDateTime getStartDate() {
        return startDate;
    }

    public void setStartDate(LocalDateTime startDate) {
        this.startDate = startDate;
    }

    public Integer getStartType() {
        return startType;
    }

    public void setStartType(Integer startType) {
        this.startType = startType;
    }

    public Integer getCommonPlatformFlag() {
        return commonPlatformFlag;
    }

    public void setCommonPlatformFlag(Integer commonPlatformFlag) {
        this.commonPlatformFlag = commonPlatformFlag;
    }

    @Override
    public String toString() {
        return "ModelModifyDTO{" +
                "modelId=" + modelId +
                ", brandId=" + brandId +
                ", seriesId=" + seriesId +
                ", modelCode='" + modelCode + '\'' +
                ", modelName='" + modelName + '\'' +
                ", dataSources=" + dataSources +
                ", isValid=" + isValid +
                ", recordVersion=" + recordVersion +
                ", modelLabourCode='" + modelLabourCode + '\'' +
                ", modelGroupName='" + modelGroupName + '\'' +
                ", modelGroupCode='" + modelGroupCode + '\'' +
                ", startType='" + startType + '\'' +
                ", startDate='" + startDate + '\'' +
                ", commonPlatformFlag='" + commonPlatformFlag + '\'' +
                '}';
    }
}
